#include "widget.h"
#include "ui_widget.h"
#include<QPixmap>
#include<QPainter>
#include<QImage>
#include<QPicture>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    ////Pixmap绘图设备  专门为平台做了显示的优化/////
//    QPixmap pix(300,300);
//    //填充颜色
//    pix.fill(Qt::white);
//    //声明画家
//    QPainter painter(&pix);
//    painter.setPen(QPen(Qt::green));
//    painter.drawEllipse(QPoint(200,100),50,50);

//    pix.save("F:\\pix.png");

    /////QImage 绘图设备 可以对像素进行访问//////

    //QImage img(300,300,QImage::Format_RGB32);
    //img.fill(Qt::white);

    //声明画家
       //QPainter painter(&img);
       //painter.setPen(QPen(Qt::blue));
       //painter.drawEllipse(QPoint(200,100),50,50);

       //img.save("F:\\pix.png");

       ///////QPicture 绘图设备，可以记录和重现绘图指令////
       QPicture pic;
       QPainter painter;
       painter.begin(&pic);//后期指定绘图设备
       painter.setPen(QPen(Qt::cyan));
       painter.drawEllipse(QPoint(200,100),50,50);
       painter.end();//结束画画

        //保存到磁盘
        pic.save("F:\\pic.ljt");

}

void Widget::paintEvent(QPaintEvent *){

//    QPainter painter;
//    //利用QImage对像素修改
//    QImage img;
//    img.load(":/Image/Luffy.png");

//    //修改像素点
//    for(int i=50;i<100;i++){
//        for(int j=50;i<100;i++){
//            QRgb value=qRgb(255,0,0);
//            img.setPixel(i,j,value);
//        }
//    }

//    painter.drawImage(0,0,img);

    //重现QPicture 的绘图指令
    QPainter painter(this);
    QPicture pic;
    pic.load("F:\\pic.ljt");
    painter.drawPicture(0,0,pic);
    //picture 主要是用来记录指令的
}

Widget::~Widget()
{
    delete ui;
}
